<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<script>
	// variables globales.
	var proveedor_id = "";
	var codigoDispositivo = "";
	var modeloDispositivo = "";
	var estado_id = "";
	
	var upd_proveedor_id = "";
	var upd_codigoDispositivo = "";
	var upd_codigoEstado = "";
	
	var buscarDispositivo_code = "";

	function AddNewEntrada(){
		var imei = $("#add_imei").val();
		var fecha = $("#add_fecha").val();
		var precio = $("#add_precio").val();
		var observacion = $("#add_observacion").val();
		var pagado = $("#add_pagado").attr('checked')=='checked';
		
		var bValid = true;
		
		var allFields = $([]).add("#add_imei").add("#add_dispositivo").add("#add_proveedor").add("#add_precio").add("#add_observacion").add("#add_fecha");;
		var errores = [];		
		allFields.removeClass( "ui-state-error" );

		// validacion imei
		if(!checkRegexpForElemet($("#add_imei"), /^\d+$/) || !checkLengthForElement($("#add_imei"),15,15)){
			errores.push({element: $("#add_imei"), mensaje: "El campo <b>Imei</b> debe ser copuesto por 15 numeros"});
			bValid=false;
		}
		
		// validacion dispositivo
		if(!(codigoDispositivo.length>0 && codigoDispositivo.length<35)){
			errores.push({element: $("#add_dispositivo"), mensaje: "El campo <b>Codigo barra celular</b> es requerido y debe existir en base de datos"});
			bValid=false;
		}
		
		// validacion proveedor
		if(!(proveedor_id.length>0 && proveedor_id.length<35)){
			errores.push({element: $("#add_proveedor"), mensaje: "El campo <b>Proveedor</b> es requerido y debe existir en base de datos"});
			bValid=false;
		}
		
		// validacion estado
		if(!(estado_id.length>0 && estado_id.length<35)){
			errores.push({element: $("#add_estado"), mensaje: "El campo <b>Estado</b> es requerido y debe existir en base de datos"});
			bValid=false;
		}
		
		// Precio de Compra
		if(!checkRegexpForElemet($("#add_precio"), /^\d+$/) || !checkLengthForElement($("#add_precio"),1,5)){
			errores.push({element: $("#add_precio"), mensaje: "El campo <b>Precio de Compra</b> es requerido y debe ser entre 1 y 5 digitos"});
			bValid=false;
		}
		
		// Validacion Fecha
		if(!checkLengthForElement($("#add_fecha"),10,10)){
			errores.push({element: $("#add_fecha"), mensaje: "El campo <b>Fecha Ingreso</b> es requerido"});
			bValid=false;
		}
		
		if(!bValid){
			var mensaje = "<strong>Error!!!</strong><br/>";
			var notification = $("#notif_addition");
			notification.hide("slow", function(){
				notification.removeClass();
				notification.addClass("notification n-error");

				$.each(errores, function(index, value) { 
					  value.element.addClass("ui-state-error");
					  mensaje += value.mensaje + "<br/>";
				});
				notification.html(mensaje);
				
				notification.show("slow", function(){
					setTimeout(function() {
						notification.hide("slow");
					}, 10000 );
				});
			});
			return;
		}
	
		
		$.getJSON("addEntrada", { imei: imei, fecha:fecha, precio:precio, observacion:observacion, dispositivo:codigoDispositivo, proveedor:proveedor_id, estado:estado_id, pagado:pagado }, function(json) {
			if(json.status==true){
				var notification = $("#notif_addition");
				var oTable = $('#tablaEntradas').dataTable();
				oTable.fnDraw();
				notification.hide("slow", function(){
					notification.removeClass();
					notification.addClass("notification n-success");
					notification.html(json.mensaje);
					notification.show("slow", function(){
						setTimeout(function() {
							notification.hide("slow");
							clearAllFields();
						}, 8500 );
					});
				});
			}else{
				notification.hide("slow", function(){
					notification.removeClass();
					notification.addClass("notification n-error");
					notification.html(json.mensaje);
					notification.show("slow", function(){
						setTimeout(function() {
							notification.hide("slow");
						}, 3500 );
					});
				});
				notification.html(json.mensaje);
			}
	    });
		
	}
	
	function deleteElement(id){
		customConfirmation("Realmente desea eliminar el ingreso", function(){
		$.getJSON("removeEntrada", { imei: id }, function(json) {
				if(json.status==true){
					var oTable = $('#tablaEntradas').dataTable();
					oTable.fnDraw();
					customAlert("El ingreso se elimino correctamente");
				}else{
					customAlert("Ocurrio un error al intentar eliminar el ingreso");
				}
		    });
		}, function(){ });
	}
	
	function editarElemento(id){
		$.getJSON("getEntradaDetail", { imei: id }, function(entrada) {
			$("#upd_imei").val(entrada.imei);
	        $("#upd_dispositivo").val(entrada.dispositivo.modelo);
	        $("#upd_dispositivo").attr("title", entrada.dispositivo.modelo);
	        $("#upd_proveedor").val(entrada.proveedor.nombre);
	        $("#upd_precio").val(entrada.precioCompra);
	        $("#upd_observacion").val(entrada.observacion);
	        $("#upd_estado").val(entrada.estado.estado);
	        $("#upd_pagado").removeAttr('checked');
	        if(entrada.pagado){
	        	$("#upd_pagado").attr('checked','checked');
	        }
	        refreshCheckbox($("#upd_pagado"));
	        
	        $("#upd_fecha").datepicker( "setDate" , new Date(entrada.fechaEntrada));
	        upd_proveedor_id=entrada.proveedor.id+"";
	        upd_codigoDispositivo=entrada.dispositivo.codigo;
	        upd_codigoEstado = entrada.estado.id;
	        $("#editarEntrada").dialog("open");
	        $("#upd_dispositivo").focus();
	    });
	}
	
	function updateElementoInt(){
		var imei = $("#upd_imei").val();
		var fecha = $("#upd_fecha").val();
		var precio = $("#upd_precio").val();
		var observacion = $("#upd_observacion").val();
		var pagado = $("#upd_pagado").attr('checked')=='checked';
		$.getJSON("updateEntrada", { imei: imei, fecha:fecha, precio:precio, observacion:observacion, dispositivo:upd_codigoDispositivo, proveedor:upd_proveedor_id, estado:upd_codigoEstado, pagado:pagado}, function(json) {
			if(json.status==true){
				var oTable = $('#tablaEntradas').dataTable();
				oTable.fnDraw();
				customAlert(json.mensaje);
			}else{
				customAlert(json.mensaje);
			}
	    });
	}
	
	function addNewProveedorInt(){
		var nombre = $("#add_proveedor_nombre").val();
		var telefono = $("#add_proveedor_tel").val();
		var email = $("#add_proveedor_email").val();
		$.getJSON("addProveedor", { nombre:nombre, telefono:telefono, email:email }, function(json) {
			if(json.status==true){
				$("#add_proveedor").val($("#add_proveedor_nombre").val());
				proveedor_id = json.proveedor_id+"";
				customAlert("El proveedor se agrego correctamente");
			}else{
				customAlert("Ocurrio un error al agregar el proveedor");
			}
	    });
	}
	
	function addNewDispositivoInt(){
		var codigo = $("#add_dispositivo_codigo").val();
		var modelo = $("#add_dispositivo_modelo").val();
		var stock = $("#add_dispositivo_stock").val();
		$.getJSON("addDispositivo", { codigo:codigo, modelo:modelo, stockMinimo:stock }, function(json) {
			if(json.status==true){
				$("#add_dispositivo").val($("#add_dispositivo_codigo").val());
				codigoDispositivo=codigo;
				modeloDispositivo = modelo;
				customAlert("El registro se agrego correctamente");
			}else{
				codigoDispositivo="";
				modeloDispositivo="";
				customAlert("Ocurrio un error al intentar agregar el registro");
			}
			$("#add_dispositivo_codigo").val("");
			$("#add_dispositivo_modelo").val("");
			$("#add_dispositivo_stock").val("0");
	    });
	}
	
	function addNewEstadoInt(){
		var estado = $("#add_estado_estado").val();
		$.getJSON("addEstado", { estado:estado}, function(json) {
			if(json.status==true){
				$("#add_estado").val($("#add_estado_estado").val());
				estado_id = json.estado_id+"";
				customAlert("El estado se agrego correctamente");
			}else{
				customAlert("Ocurrio un error al agregar el estado");
			}
	    });
	}
	
	function addNewDispositivo(){
		$("#notif_dispositivo_modelo").hide("slow");
		$("#add_dispositivo_codigo").val($("#add_dispositivo").val());
		$("#newDispositivoDialog").dialog("open");
		$("#add_dispositivo_modelo").focus();
		$("#add_dispositivo_stock").val(0);
	}
	function addNewProveedor(){
		$("#notif_proveedor").hide("slow");
		$("#add_proveedor_nombre").val($("#add_proveedor").val());
		$("#newProveedorDialog").dialog("open");
		$("#add_proveedor_tel").focus();
	}
	function addNewEstado(){
		$("#notif_estado").hide("slow");
		$("#add_estado_estado").val($("#add_estado").val());
		$("#newEstadoDialog").dialog("open");
	}
	
	function clearAllFields(){
		var allFields = $([]).add("#add_imei").add("#add_dispositivo").add("#add_proveedor").add("#add_precio").add("#add_observacion").add("#add_estado").add("#add_fecha");
		// setea todos en blanco o con el valor por defecto
		allFields.val("");
		$("#add_fecha").datepicker("setDate", new Date());
		
		allFields.removeClass("ui-state-error");
		// llama al evento change de todos los campos
		allFields.change();
		// llama al evento change del campo proveedor que es autocomplete
		$("#add_proveedor").autocomplete('option','change').call($("#add_proveedor"));
		
		$("#add_pagado").removeAttr('checked');
        $("#add_pagado").attr('checked','checked');
	    refreshCheckbox($("#add_pagado"));
	}
	
	function clearFilters(){
		var allFields = $([]).add("#flt_imei").add("#flt_dispositivo").add("#flt_proveedor").add("#flt_fecha");
		// setea todos en blanco o con el valor por defecto
		allFields.val("");
		//$("#add_fecha").datepicker( "setDate" , "" );
		
		// llama al evento change de todos los campos
		//allFields.change();
		// llama al evento change del campo proveedor que es autocomplete
		//$("#flt_dispositivo").autocomplete('option','change').call($("#flt_dispositivo"));
		//$("#flt_proveedor").autocomplete('option','change').call($("#flt_proveedor"));
		
		var oTable = $('#tablaEntradas').dataTable();
		oTable.fnResetAllFilters();
	}
	
	// Validaciones.
	function checkRegexpForElemet(o, regexp) {
		if ( !( regexp.test( o.val() ) ) ) {
			return false;
		} else {
			return true;
		}
	}
	function checkLengthForElement( o, min, max ) {
		if ( o.val().length > max || o.val().length < min ) {
			return false;
		} else {
			return true;
		}
	}
	function validarDispositivo(){
		var codigo = $("#add_dispositivo").val();
		if(codigo.length>0){
			$.getJSON("getDispositivoDetail", { codigo:codigo }, function(json) {
				if(json!=null){
					codigoDispositivo=codigo;
					modeloDispositivo=json.modelo;
					$("#notif_dispositivo_modelo").hide("slow", function(){
						$("#notif_dispositivo_modelo").removeClass();
						$("#notif_dispositivo_modelo").addClass("notification n-information");
						$("#notif_dispositivo_modelo").html(
								"<strong>Modelo del celular:</strong><br/>" +
								modeloDispositivo);
						$("#notif_dispositivo_modelo").show("slow");
					});
					
				}else{
					codigoDispositivo="";
					modeloDispositivo="";
					$("#notif_dispositivo_modelo").hide("slow", function(){
						$("#notif_dispositivo_modelo").removeClass();
						$("#notif_dispositivo_modelo").addClass("notification n-attention");
						$("#notif_dispositivo_modelo").html(
								"El celular con codigo <strong>"+ codigo 
								+"</strong> no existe en base de datos<br/>"+
								'Para agregarlo haga click <a href="#" onclick="addNewDispositivo()">AQUI</a>'
						);
						$("#notif_dispositivo_modelo").show("slow");
					});
				}
		    });
		}else{
			codigoDispositivo="";
			modeloDispositivo="";
			$("#notif_dispositivo_modelo").hide("slow");
		}
	}
	
	function buscarDispositivo(){
		$("#buscarDispositivo_dialog").dialog("open");	
	}
	
	// onLoad 
	$(function() {
		// Page customization
		$("button, input:submit").button();
		$("#nav > li").removeClass("current");
		$("#nav_ingresos").addClass("current");
		$(".dataTables_filter").hide();
		
		$("#buscarDispositivo").button({
	        icons: { primary: "ui-icon-search" },
	        text: false
	    });
		
		// Dialogos.
		$("#editarEntrada").dialog({
			autoOpen: false,
			width: 400,
			height: 380,
			modal: true,
			resizable: false,
			buttons: {
				"Aceptar": function() {
					var allFields = $([]).add("#upd_dispositivo").add("#upd_proveedor").add("#upd_precio").add("#upd_fecha").add("#upd_observacion");
					var bValid = true;
					allFields.removeClass( "ui-state-error" );

					// validacion dispositivo.
					if(!(upd_codigoDispositivo.length>0 && upd_codigoDispositivo.length<35)){
						$("#upd_dispositivo").addClass("ui-state-error");
						updateTips("Debe seleccionar un Dispositivo que exita en la base");
						bValid=false;
					}
					
					// validacion proveedor.
					if(!(upd_proveedor_id.length>0 && upd_proveedor_id.length<35)){
						$("#upd_proveedor").addClass("ui-state-error");
						updateTips("Debe seleccionar un Proveedor que exita en la base");
						bValid=false;
					}
					
					// Precio de Compra.
					bValid = bValid && checkLength($("#upd_precio"), "Precio de compra", 1, 5 );
					bValid = bValid && checkRegexp($("#upd_precio"), /^\d+$/, "El campo precio de compra solo admite numeros" );
					
					// Validacion Fecha.
					bValid = bValid && checkLength($("#upd_fecha"), "Fecha", 10, 10);
					
					if(bValid){
						updateElementoInt();
						$(this).dialog("close");
					}
				},
				"Cancelar": function() {
					$(this).dialog( "close" );
				}
			},
			close: function() {
				//allFields.val("").removeClass("ui-state-error");
			}
		});
		$("#newDispositivoDialog").dialog({
			autoOpen: false,
			height: 350,
			width: 350,
			modal: true,
			buttons: {
				"Aceptar": function() {
					
					var allFields = $([]).add("#add_dispositivo_codigo").add("#add_dispositivo_modelo").add("#add_dispositivo_stock");
					var bValid = true;
					allFields.removeClass( "ui-state-error" );
					
					bValid = bValid && checkRegexp( $("#add_dispositivo_stock"),  /^\d+$/, "El campo stock minimo solo admite numeros" );
					bValid = bValid && checkLength( $("#add_dispositivo_stock"), "Stock Minimo", 1, 4);
					
					bValid = bValid && checkLength( $("#add_dispositivo_modelo"), "Modelo", 4, 80 );
					
					bValid = bValid && checkLength( $("#add_dispositivo_codigo"), "Codigo", 3, 200 );
					
					if (bValid) {
						addNewDispositivoInt();
						$(this).dialog( "close" );
					}
				},
				"Cancelar": function() {
					$(this).dialog( "close" );
				}
			},
			close: function() {
				allFields.val("").removeClass("ui-state-error");
			}
		});
		
		$("#newProveedorDialog").dialog({
			autoOpen: false,
			height: 350,
			width: 350,
			modal: true,
			buttons: {
				"Aceptar":  function() {
					
					var allFields = $([]).add("#add_proveedor_nombre").add("#add_proveedor_email").add("#add_proveedor_tel");
					var bValid = true;
					allFields.removeClass( "ui-state-error" );

					// agregue este if porque el campo es opcional
					if($("#add_proveedor_tel").val().length!=0){
						bValid = bValid && checkLength( $("#add_proveedor_tel"), "Telefono", 5, 25 );
						bValid = bValid && checkRegexp( $("#add_proveedor_tel"), /^([0-9-\(\) +])+$/, "El Campo telefono solo admite: 0-9 ( ) +" );
					}

					// agregue este if porque el campo es opcional
					if($("#add_proveedor_email").val().length!=0){
						bValid = bValid && checkLength( $("#add_proveedor_email"), "E-mail", 6, 80 );
						bValid = bValid && checkRegexp( $("#add_proveedor_email"), /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "El mail debe tener el siguiente formato: ejemplo@mailmail.com.ar" );
					}

					bValid = bValid && checkLength( $("#add_proveedor_nombre"), "Nombre", 3, 200 );
					bValid = bValid && checkRegexp( $("#add_proveedor_nombre"), /^[a-z]([0-9a-z_ ])+$/i, "En nombre consiste en: a-z, 0-9, _, y empieza con una letra." );

					if (bValid) {
						addNewProveedorInt();
						$(this).dialog( "close" );
					}
				},
				"Cancelar": function() {
					$(this).dialog("close");
				}
			}
		});
		
		//estado 
		$("#newEstadoDialog").dialog({
			autoOpen: false,
			height: 300,
			width: 350,
			modal: true,
			buttons: {
				"Aceptar":  function() {
					var allFields = $([]).add("#add_estado_estado");
					var bValid = true;
					allFields.removeClass( "ui-state-error" );

					bValid = bValid && checkLength( $("#add_estado_estado"), "Estado", 3, 200 );
					bValid = bValid && checkRegexp( $("#add_estado_estado"), /^[a-z]([0-9a-z_ ])+$/i, "En estado consiste en: a-z, 0-9, _, y empieza con una letra." );

					if (bValid) {
						addNewEstadoInt();
						$(this).dialog( "close" );
					}
				},
				"Cancelar": function() {
					$(this).dialog("close");
				}
			}
		});
		
		$("#buscarDispositivo_dialog").dialog({
			autoOpen: false,
			height: 160,
			width: 300,
			modal: true,
			resizable: false,
			buttons: {
				"Aceptar":  function() {
					if(buscarDispositivo_code.length==0){
						customAlert("No se selecciono ningun dispositivo");
						$("#add_dispositivo").val("");
						codigoDispositivo=buscarDispositivo_code;
						$(this).dialog("close");
						return false;
					}
					codigoDispositivo=buscarDispositivo_code;
					$("#add_dispositivo").val(buscarDispositivo_code);
					$(this).dialog("close");
				},
				"Cancelar": function() {
					$(this).dialog("close");
				}
			}
		});
		
		// Datatable.
		tablaEntradas = $('#tablaEntradas').dataTable( {
            "bFilter": true,
            "sPaginationType": "full_numbers",
            "bProcessing": true,
            "bServerSide": true,
            "sAjaxSource": "entradas",
            "sAjaxDataProp": "entradas",
            "bLengthChange": false,
            "bPaginate": true,
            "bSort": false,
            "iDisplayLength": 10,
            "bStateSave": true,
            "oLanguage": {
                "sProcessing":   "Buscando...",
                "sZeroRecords":  "No se encontraron registros.",
                "sInfo":         "Ingresos de _START_ hasta _END_ de un total de _TOTAL_ ",
                "sInfoFiltered": "(Total de _MAX_)",
                "sInfoPostFix":  "",
                "sSearch":       "Busqueda por Codigo:"
            },
            "aoColumns": [
              { "mData": "imei" },
              { "mData": "dispositivo.modelo" },
              { "mData": "proveedor.nombre" },
              { "mData": "precioCompra",
           	    "fnRender": function (o, val) {
                   	return "$" + val;
   				}
              },
              { "mData": "estado.estado" },
              { "mData": "fechaEntrada",
           	    "fnRender": function (o, val) {
           	    	var value = new Date(val);
                   	return $.datepicker.formatDate('dd/mm/y', value);
     			}
              },
              { "mData": "observacion"},
              { 
           		"mData": "imei",
            	"fnRender": function (o, val) {
            		var editImg = "<c:url value="/resources/img/pencil.gif"/>";
            		var deleteImg = "<c:url value="/resources/img/minus-circle.gif"/>";
            		var link = '<div style="text-align:center">';
            		link += '<a href="#" style="margin-right:5px;" onclick="editarElemento(' + val + ')"><img src="' + editImg + '" width="16" height="16" alt="Modificar"></a>';
                  	link += '<a href="#" style="margin-left:5px;" onclick="deleteElement(' + val + ')"><img src="' + deleteImg +'" width="16" height="16" alt="Eliminar"></a>';
                  	link += '</div>';
                  	return link;
  				},
  				"bUseRendered": false
              }
            ],
            "fnServerData": function ( sSource, aoData, fnCallback ) {
                $.getJSON(sSource, aoData, function (json) {
                    fnCallback(json);
                });
            },
            "fnRowCallback": function( nRow, aaData, iDisplayIndex ) {
                		if(!aaData["pagado"]){
                        	$(nRow).css( 'background-color','#2968A2' );
                			$(nRow).css( 'color','#FFFFFF' );
                		}
                    return nRow;
            }
        });
		$("#tablaEntradas_filter").hide();
		
		
		// FILTROS.
		// imei.
		$("#flt_imei").change( function () {
        	tablaEntradas.fnFilter($(this).val(), 0);
        } );
		
		// dispositivo.
		$("#flt_dispositivo").autocomplete({
			source: "autoCompleteDispositivo",
			minLength: 2,
			change:function( event, ui ) {
		        var data=$.data(this);
		        if(data.autocomplete.selectedItem==undefined){
					tablaEntradas.fnFilter($(this).val(), 1);
		        }
		    },
			focus: function( event, ui ) {
				$("#flt_dispositivo").val(ui.item.label);
				return false;
			},
			select: function( event, ui ) {
				$(this).val(ui.item.label);
				tablaEntradas.fnFilter(ui.item.label, 1);
				return false;
			}
		});
		
		// proveedor.
		$("#flt_proveedor").autocomplete({
			source: "autoCompleteProveedor",
			minLength: 2,
			change:function( event, ui ) {
		        var data=$.data(this);
		        if(data.autocomplete.selectedItem==undefined){
		        	$("#flt_proveedor").val("");
		        	tablaEntradas.fnFilter("", 2);
		        }
		    },
			focus: function( event, ui ) {
				$("#flt_proveedor").val(ui.item.label);
				return false;
			},
			select: function( event, ui ) {
				$("#flt_proveedor").val(ui.item.label);
				tablaEntradas.fnFilter(ui.item.value, 2);
				return false;
			}
		});
		
		// fecha.
		$("#flt_fecha").datepicker({
			currentText: "Hoy",
			nextText: "Siguiente",
			prevText: "Anterior",
			showOtherMonths: true,
			selectOtherMonths: true,
			dateFormat:"dd/mm/yy",
			dayNamesMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"],
			dayNamesShort: ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"],
			dayNames: ["Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"],
			monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
			monthNamesShort: ["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"]
		});
		$("#flt_fecha").change( function () {
        	tablaEntradas.fnFilter($(this).val(), 3);
        });
		
		// REALIZAR UNA ENTRADA.
		// fecha.
		$("#add_fecha").datepicker({
			currentText: "Hoy",
			nextText: "Siguiente",
			prevText: "Anterior",
			showOtherMonths: true,
			selectOtherMonths: true,
			dateFormat:"dd/mm/yy",
			dayNamesMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"],
			dayNamesShort: ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"],
			dayNames: ["Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"],
			monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
			monthNamesShort: ["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"]
		}).datepicker( "setDate" , new Date() );
		
		// modelo celular
		$("#add_dispositivo").change( validarDispositivo );
		
		// imai
		$("#add_imei").change( function(){
			var imei = $("#add_imei").val();
			if(imei.length>0){
				$.getJSON("getEntradaDetail", { imei:imei}, function(json) {
					if(json!=null){
						$("#notif_imei").hide("slow", function(){
							$("#notif_imei").removeClass();
							$("#notif_imei").addClass("notification n-error");
							$("#add_imei").addClass("ui-state-error");
							$("#notif_imei").html(
									"<strong>ERROR: Ya exite una entrada con ese IMEI.</strong><br/>" +
									"Equipo: " + json.dispositivo.modelo + "<br/>" +
									"Proveedor: " + json.proveedor.nombre + "<br/>" +
									"Precio Compra: $" + json.precioCompra + "<br/>" +
									"Fecha Ingreso: " + $.datepicker.formatDate('dd/mm/y', new Date(json.fechaEntrada)) + "<br/>" + 
									"Observacion: " + ((json.observacion==null)?" - ":json.observacion)
							);
							$("#notif_imei").show("slow");
						});
					}else{
						$("#notif_imei").hide("slow");
						$("#add_imei").removeClass("ui-state-error");
					}
			    });
			}else{			
				$("#notif_imei").hide("slow");
				$("#add_imei").removeClass("ui-state-error");
			}
		});
		$("#add_imei").keypress(function(event) {
			if (!(event.which == 13 || (event.which>=48 && event.which<=57))) {
				event.preventDefault();
			}
		});
		
		// proveedor
		$("#add_proveedor").autocomplete({
			source: "autoCompleteProveedor",
			minLength: 2,
			change:function( event, ui ) {
				var proveedorText = $("#add_proveedor").val();
		        var data=$.data(this);
		        // este if es para cuando refresco desde el metodo clear fields
		        if(data.autocomplete==undefined && proveedorText.length==0){
		        	$("#notif_proveedor").hide("slow");
		        	return;
		        }
		        if(data.autocomplete.selectedItem==undefined){
		        	proveedor_id="";
					if(proveedorText.length>0){
						$("#notif_proveedor").hide("slow", function(){
							$("#notif_proveedor").removeClass();
							$("#notif_proveedor").addClass("notification n-attention");
							$("#notif_proveedor").html(
								"El proveedor con nombre <strong>"+ proveedorText 
								+"</strong> no existe en base de datos<br/>"+
								'Para agregarlo haga click <a href="#" onclick="addNewProveedor()">AQUI</a>'
							);
							$("#notif_proveedor").show("slow");
						});
					}else{
						$("#notif_proveedor").hide("slow");
					}
		        }else{
		        	proveedor_id=ui.item.value;
		        	$("#notif_proveedor").hide("slow");
		        }
		        
			
		    },
			focus: function( event, ui ) {
				$("#add_proveedor").val(ui.item.label);
				return false;
			},
			select: function( event, ui ) {
				proveedor_id = ui.item.value;
				return false;
			}
		});

		// estado
		$("#add_estado").autocomplete({
			source: "autoCompleteEstado",
			minLength: 2,
			change:function( event, ui ) {
				var estadoText = $("#add_estado").val();
		        var data=$.data(this);
		        // este if es para cuando refresco desde el metodo clear fields
		        if(data.autocomplete==undefined && proveedorText.length==0){
		        	$("#notif_estado").hide("slow");
		        	return;
		        }
		        if(data.autocomplete.selectedItem==undefined){
		        	estado_id="";
					if(estadoText.length>0){
						$("#notif_estado").hide("slow", function(){
							$("#notif_estado").removeClass();
							$("#notif_estado").addClass("notification n-attention");
							$("#notif_estado").html(
								"El estado con description <strong>"+ estadoText
								+"</strong> no existe en base de datos<br/>"+
								'Para agregarlo haga click <a href="#" onclick="addNewEstado()">AQUI</a>'
							);
							$("#notif_estado").show("slow");
						});
					}else{
						$("#notif_estado").hide("slow");
					}
		        }else{
		        	estado_id=ui.item.value;
		        	$("#notif_estado").hide("slow");
		        }
		    },
			focus: function( event, ui ) {
				$("#add_estado").val(ui.item.label);
				return false;
			},
			select: function( event, ui ) {
				estado_id = ui.item.value;
				return false;
			}
		});
		
		// buscar Dispositivo 
		$("#buscarDispositivo_modelo").autocomplete({
			source: "autoCompleteDispositivo",
			minLength: 2,
			change:function( event, ui ) {
		        var data=$.data(this);
		        if(data.autocomplete.selectedItem==undefined){
		        	$(this).val("");
		        	buscarDispositivo_code = "";
		        }
		    },
			focus: function( event, ui ) {
				$(this).val(ui.item.label);
				return false;
			},
			select: function( event, ui ) {
				$(this).val(ui.item.label);
				buscarDispositivo_code = ui.item.value;
				return false;
			}
		});
		
		
		
		
		// ACTUALIZAR UNA ENTRADA.
		// dispositivo.
		$("#upd_dispositivo").autocomplete({
			source: "autoCompleteDispositivo",
			minLength: 2,
			change:function( event, ui ) {
		        var data=$.data(this);
		        if(data.autocomplete.selectedItem==undefined){
		        	$("#upd_dispositivo").val("");
		        	upd_codigoDispositivo = "";
		        }
		    },
			focus: function( event, ui ) {
				$("#upd_dispositivo").val(ui.item.label);
				return false;
			},
			select: function( event, ui ) {
				$("#upd_dispositivo").val(ui.item.label);
				upd_codigoDispositivo = ui.item.value;
				return false;
			}
		});
		
		// proveedor.
		$("#upd_proveedor").autocomplete({
			source: "autoCompleteProveedor",
			minLength: 2,
			change:function( event, ui ) {
		        var data=$.data(this);
		        if(data.autocomplete.selectedItem==undefined){
		        	upd_proveedor_id = "";
		        	$("#upd_proveedor").val("");
		        }
		    },
			focus: function( event, ui ) {
				$("#upd_proveedor").val(ui.item.label);
				return false;
			},
			select: function( event, ui ) {
				$("#upd_proveedor").val(ui.item.label);
				upd_proveedor_id = ui.item.value;
				return false;
			}
		});
		
		// estado
		$("#upd_estado").autocomplete({
			source: "autoCompleteEstado",
			minLength: 2,
			change:function( event, ui ) {
		        var data=$.data(this);
		        if(data.autocomplete.selectedItem==undefined){
		        	upd_codigoEstado = "";
		        	$("#upd_estado").val("");
		        }
		    },
			focus: function( event, ui ) {
				$("#upd_estado").val(ui.item.label);
				return false;
			},
			select: function( event, ui ) {
				$("#upd_estado").val(ui.item.label);
				upd_codigoEstado = ui.item.value;
				return false;
			}
		});
		
		$("#upd_fecha").datepicker({
			currentText: "Hoy",
			nextText: "Siguiente",
			prevText: "Anterior",
			showOtherMonths: true,
			selectOtherMonths: true,
			dateFormat:"dd/mm/yy",
			dayNamesMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"],
			dayNamesShort: ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"],
			dayNames: ["Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"],
			monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
			monthNamesShort: ["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"]
		});
		
		clearFilters();
		
	});
</script>
<div class="grid_10">
	<div class="module">
		<h2><span>Relizar nuevo Ingreso</span></h2>
		<div class="module-body">
			<!-- fieldset style="display:inline; padding: 5px; width: 48%; text-align: left;vertical-align: top;">
				<label for="add_imei">Imei</label>
				<input type="text" id="add_imei" class="text ui-widget-content ui-corner-all" title="Codigo unico del celular"/>
				<label for="add_dispositivo">Codigo barra celular</label>
				<input type="text" id="add_dispositivo" class="text ui-widget-content ui-corner-all" title="Introduzca el codigo de barras"/>
				<label for="add_proveedor">Proveedor</label>
				<input type="text" id="add_proveedor" class="text ui-widget-content ui-corner-all" title="Nombre del proveedor" />
				<label for="add_precio">Precio de Compra</label>
				<input type="text" id="add_precio" class="text ui-widget-content ui-corner-all" title="Precio de compra"/>
				<label for="add_fecha">Fecha Ingreso</label>
				<input type="text" id="add_fecha" class="text ui-widget-content ui-corner-all" title="Fecha del ingreso"/>
			</fieldset>
			<fieldset style="display:inline; padding: 5px; width: 48%; text-align: left; vertical-align: top;">
				<label for="add_observacion">Observaciones</label>
				<textarea id="add_observacion" rows="10" style="width:100%" class="text ui-widget-content ui-corner-all"></textarea>
				<label for="add_estado">Estado</label>
				<input type="text" id="add_estado" class="text ui-widget-content ui-corner-all" />
				<label for="add_pagado">Pagado</label>
				<input type="checkbox" id="add_pagado" checked="checked"/>
			</fieldset -->
			<table style="padding:0px; border:0px; width:100%"  >
				<tbody>
					<tr>
						<td style="width: 10%">Imei</td>
						<td style="width: 15%">
							<input type="text" id="add_imei" style="width:80%" class="text ui-widget-content ui-corner-all" title="Codigo unico del celular"/>
						</td>
						<td style="width: 10%">Codigo barra celular</td>
						<td style="width: 15%">
							<input type="text" id="add_dispositivo" style="width:70%" class="text ui-widget-content ui-corner-all" title="Introduzca el codigo de barras"/>
							<button id="buscarDispositivo" onclick="buscarDispositivo()">buscar</button>
						</td>
						<td rowspan="5" style="width: 10%; vertical-align: top">Observaciones</td>
						<td rowspan="5" style="width: 40%">
							<textarea id="add_observacion" rows="8" style="width:100%" class="text ui-widget-content ui-corner-all"></textarea>
						</td>
					</tr>
					<tr>
						<td style="width: 10%">Proveedor</td>
						<td style="width: 40%" colspan="2">
							<input type="text" id="add_proveedor" style="width:100%" class="text ui-widget-content ui-corner-all" title="Nombre del proveedor" />
						</td>
					</tr>
					<tr>
						<td style="width: 10%">Precio de Compra</td>
						<td style="width: 15%">
							<input type="text" id="add_precio" class="text ui-widget-content ui-corner-all" title="Precio de compra"/>
						</td>
						<td style="width: 10%">Fecha Ingreso</td>
						<td style="width: 15%">
							<input type="text" id="add_fecha" class="text ui-widget-content ui-corner-all" title="Fecha del ingreso"/>
						</td>
					</tr>
					<tr>
						<td style="width: 10%">Estado</td>
						<td style="width: 15%">
							<input type="text" id="add_estado" class="text ui-widget-content ui-corner-all" />
						</td>
						<td style="width: 10%">Pagado</td>
						<td style="width: 15%">
							<label for="add_pagado"> Pagado</label>
							<input type="checkbox" id="add_pagado" checked="checked"/>
						</td>
					</tr>
				</tbody>
			</table>
			
			<!-- Notificaciones (+) -->
			<p id="notif_addition" style="display:none"></p>
			<p id="notif_imei" style="display:none"></p>
			<p id="notif_dispositivo_modelo" style="display:none"></p>
			<p id="notif_proveedor" style="display:none"></p>
			<p id="notif_estado" style="display:none"></p>
			<!-- Notificaciones (-) -->

			<div style="clear:both"></div>
			<button onclick="AddNewEntrada()">Agregar</button>
			<button onclick="clearAllFields()">Limpiar campos</button>
		</div>
	</div>
</div>
<div class="grid_12">
	<div class="module">
	<h2><span>Lista de Ingresos</span></h2>
	    <div class="module-body">
			<div class="grid_12">	    
		    	<!-- <fieldset style="display:inline; margin: 5px; width: 48%; text-align: left">
		    		<legend>Filtros</legend>
					<label for="flt_imei">Imei</label>
					<input type="text" id="flt_imei" class="text ui-widget-content ui-corner-all" title="Codigo unico del celular"/>
					<label for="flt_dispositivo">Equipo</label>
					<input type="text" id="flt_dispositivo" class="text ui-widget-content ui-corner-all" title="Tipo de celular"/>
				</fieldset>
				<fieldset style="display:inline; margin: 5px; width: 48%; text-align: left">
					<label for="flt_proveedor">Proveedor</label>
					<input type="text" id="flt_proveedor" class="text ui-widget-content ui-corner-all" title="Nombre del proveedor" />
					<label for="flt_fecha">Fecha Ingreso</label>
					<input type="text" id="flt_fecha" class="text ui-widget-content ui-corner-all" title="Fecha del ingreso"/>
				</fieldset> -->
				<h3>Filtros</h3>
				Imei <input type="text" id="flt_imei" class="text ui-widget-content ui-corner-all" title="Codigo unico del celular"/>
				Equipo <input type="text" id="flt_dispositivo" class="text ui-widget-content ui-corner-all" title="Tipo de celular"/>
				Proveedor <input type="text" id="flt_proveedor" class="text ui-widget-content ui-corner-all" title="Nombre del proveedor" />
				Fecha Ingreso <input type="text" id="flt_fecha" class="text ui-widget-content ui-corner-all" title="Fecha del ingreso"/>
			</div>
	    	<div style="clear:both"></div>
	    	<button onclick="clearFilters()">Limpiar filtros</button>
	    	<div style="clear:both;margin-bottom:8px"></div>
			<table id="tablaEntradas">
				<thead>
					<tr>
						<th style="width: 12%;">IMEI</th>
						<th style="width: 22%;">Equipo</th>
						<th style="width: 20%;">Proveedor</th>
						<th style="width: 12%;">Precio Compra</th>
						<th style="width: 10%;">Estado</th>
						<th style="width: 12%;">Fecha Ingreso</th>
						<th>Observaciones</th>
						<th style="width: 5%; text-align: center">Accion</th>
					</tr>
				</thead>
				<tbody>
				</tbody>
			</table>
			<div style="clear:both"></div>
		</div>
		
		<!-- Popups (+) -->
		<div id="editarEntrada" title="Editar Ingreso" style="overflow-x: hidden;">
			<p class="validateTips" style="color:red"></p>
			<fieldset>
				<div style="display:inline-block; width:100%">
					Imei <input type="text" id="upd_imei" class="text ui-widget-content ui-corner-all" readonly="readonly"/>
					Modelo celular <input type="text" id="upd_dispositivo" class="text ui-widget-content ui-corner-all" readonly="readonly"/>
				</div>
				<div style="display:inline-block; width:100%">
					<span style="display:inline-block;width:60px">Proveedor</span><input type="text" id="upd_proveedor" style="width:75%" class="text ui-widget-content ui-corner-all" title="Nombre del proveedor" />
				</div>
				<div style="display:inline-block; width:100%">
					Precio de Compra <input type="text" id="upd_precio" style="width:70px" class="text ui-widget-content ui-corner-all" title="Precio de compra"/>
					Fecha Ingreso <input type="text" id="upd_fecha" class="text ui-widget-content ui-corner-all" title="Fecha del ingreso"/>
				</div>
				<div style="display:inline-block; width:100%">
					<span style="display:inline-block;width:60px">Estado</span> <input type="text" id="upd_estado" style="width:75%" class="text ui-widget-content ui-corner-all"/>
				</div>
				<div style="display:inline-block; width:100%">
					<span style="display:inline-block;width:60px">Pagado</span><label for="upd_pagado">Pagado</label><input type="checkbox" id="upd_pagado" style="width:100%" title="pagado"/>
				</div>
				<label for="upd_observacion">Observaciones</label>
				<textarea id="upd_observacion" rows="5" style="width:95%" class="text ui-widget-content ui-corner-all"></textarea>
				
			</fieldset>
		</div>
		<div id="newProveedorDialog" title="Nuevo proveedor">
			<p class="validateTips" style="color:red">* Campos requeridos</p>
			<fieldset>
				<label for="name"><span style="color:red">* </span>Nombre</label>
				<input type="text" id="add_proveedor_nombre" class="text ui-widget-content ui-corner-all" />
				<label for="telefono">Telefono</label>
				<input type="text" id="add_proveedor_tel" class="text ui-widget-content ui-corner-all" />
				<label for="e-mail">E-mail</label>
				<input type="text" id="add_proveedor_email" class="text ui-widget-content ui-corner-all" />
			</fieldset>
		</div>
		<div id="newDispositivoDialog" title="Agregar nuevo dispositivo" >
			<p class="validateTips" style="color:red">* Campos requeridos</p>
			<form>
				<fieldset>
					<label for="add_dispositivo_codigo"><span style="color:red">* </span>Codigo</label>
					<input type="text" id="add_dispositivo_codigo" class="text ui-widget-content ui-corner-all" />
					<label for="add_dispositivo_modelo"><span style="color:red">* </span>Modelo</label>
					<input type="text" id="add_dispositivo_modelo" value="" class="text ui-widget-content ui-corner-all" />
					<label for="add_dispositivo_stok"><span style="color:red">* </span>Stock Minimo</label>
					<input type="email" id="add_dispositivo_stock" value="0" class="text ui-widget-content ui-corner-all" />
				</fieldset>
			</form>
		</div>
		<div id="newEstadoDialog" title="Nuevo estado">
			<p class="validateTips" style="color:red">* Campos requeridos</p>
			<fieldset>
				<label for="name"><span style="color:red">* </span>Nombre</label>
				<input type="text" id="add_estado_estado" class="text ui-widget-content ui-corner-all" />
			</fieldset>
		</div>
		<div id="buscarDispositivo_dialog" title="Buscar ">
			<fieldset>
				<label for="name">Modelo</label>
				<input type="text" id="buscarDispositivo_modelo" style="width:95%" class="text ui-widget-content ui-corner-all" />
			</fieldset>
		</div>
		<!-- Popups (-) --> 
	</div>
	<div style="clear:both;"></div>
</div>